To: cmu.mac
Subject: protectomat 2.6
CC: 

protectomat 2.2 notes (changes for later versions are at the end):
[This progam is available via anonymous ftp from host akutaktak.andrew.cmu.edu
(128.2.35.1).  The file is aw0g/prot26.hqx.  Bugs to aw0g+@andrew.cmu.edu]

Here are some programs I wrote to let you dump appleshare server
protections to a text file and reload them.  It usefull in backing
up a server, copying parts of server volumes to new locations while
maintaining protections etc.

The sources are provided in case anyone is interested.
Only the executables are needed to actually load or save protection.

To dump protection:
Create a file called volume_list in whataver directory the pmDump
program is in (it can be on any disk or floppy).  This file should
have the name of each appleshare volume you want to dump.  The names
should be one per line with no extra lines or spaces.  The names are
not following by trailing colon characters.  The capitilization
is not important.  Sample input:

MyVolume
BigDisk80

Double click on pmDump.appl.  It will read this file and process each volume.
Protection information is dumped to a file based on the current date and time.
The file name is protect.YYMMDD.HHMM for Year, Month, Day, Hour, Miniutes.
A short summary is appended to the file history.YY (for current year).

When pmDump finishes you need to entery OK<return> or ERROR<return> to
acknowlege that you noticed how the run went.  Usualy errors are due to
a disruption in network service and pmDump can be rerun to get a clean dump.
The mouse and menu's should not be used as the output file and history file
may not be properly closed.  This history file will show if this has happened
because there won't be a 'finished normaly line' for a given run.

To restore protections double click on pmLoad.appl.  It prompts for a name.  Type
in the name of a dump file that pmDump made, for example:
protect.91.0215.0910.

If you only want to restore some protections or make some transformations to
the data then edit the input file or use awk/grep to make changes to it.  Say
for example you move the folders BigDisk80:somefiles: to HugeDisk:somefiles: and
want to copy the protection.  You could keep only the lines in the protection
file for BigDisk80:somefiles: then change the text ,BigDisk80:somefiles: to
,HugeDisk:somefiles: then run pmLoad.  Note:There is a bug in finder haveing
to do with copying lots and lots of files, be sure to use finder and not
multifinder and reboot afterwards before your system crashes.

Errors come in two kinds fatal and warning.  Fatal errors stop before
compleating loading/dumping all files.  For example if the output file
while dumping is on a disk that becomes full.  Warning errors skip
a given file and go on to try the rest.  For example if when reloading
a directory does not exist it is not created and the rest of the load
is attempted.  Both load and dump give a count of the number of problems
incountered at the end of there run (if the run isn't aborted by a fatal
error).  Generaly there should be no errors.

Loading writes a log of problems to protectoload.log.  This will overwrite
any previous protecoload.log.

BUGS:
The path to each file not including the volume name must be less than 256
characters long.

This version (2.2) can't read the 1.x file format.
Aaron Wohl (aw0g+@andrew.cmu.edu)
Carnegie Mellon University
Computing & Comunications
Special Projects

protectomat 2.6 changes:
Update sources to build with THINK_C 5.0. 
Fix directory id variable to be 32bit to handle volumes with more than
32k directories.

protectomat 2.5 changes:
dump and restore the volumes protections too not just the directories.
on an error don't print rubbish after the name of the bad file.

protectomat 2.3 changes:
pmDump now warns if there is a Desktop file (since Desktop manager is used by
appleshare server no Desktop file should exit).

pmDump now checks to see how many files on the disk need to be backed up how
many kbytes of dirty files there are.

pmDump now prints how old the oldest file is.  If files are copied onto the server
this date is pretty useless as it keeps the write date from the source.

